package service;

import java.util.List;

import entity.ExamInfo;
import entity.QuestionInfo;
import entity.User;
import exception.ExamNotFinishException;
import exception.NameOrPasswordException;

/**
 * 代表软件核心业务的抽象
 * @author Administrator*/
//TODO day02 
public interface ExamService {
	/**
	 * 登录业务的管理。
	 * @return 登录成功，返回一个User对象，登录失败，返回一个自定义异常类*/
	public User login(int id,String pwd) throws NameOrPasswordException;
	/**
	 * 开始考试
	 * @return 试卷
	 */
	public ExamInfo start();
	/**
	 * 获取某个考题信息
	 * @param index 考题序号
	 * @return 考题
	 */
	public QuestionInfo getQuestion(int index);
	/**
	 * 设置考生答题时某道题的答案
	 * @param questionIndex 考试题序列号
	 * @param answer 这道题的所有答案
	 */
	public void sendAnswers(int questionIndex, List<Integer> answer);
	/**
	 * 交卷，并计算考试的分数
	 * @return 返回分数*/
	public int commit();
	/**
	 * 交卷后的查分时的考分
	 * @return 考分
	 * @throws ExamNotFinishException 
	 */
	public int result() throws ExamNotFinishException;
	public String getRule();
}
